Fix includes, fix copy ctor and mov ctor for CairoWrapper
Some checks failed
Build ptprnt / build (push) Failing after 1m1s

This commit is contained in:
2025-10-15 19:12:15 +02:00
parent 9b8f1d9dc6
commit dae16f4a26
3 changed files with 32 additions and 24 deletions

View File

@@ -90,6 +90,9 @@
"cSpell.words": [
"fakelabel",
"fontsize",
"gboolean",
"gint",
"gobject",
"halign",
"libusb",
"ptrnt",

View File

@@ -33,6 +33,12 @@ class CairoWrapper : public ICairoWrapper {
public:
~CairoWrapper() override = default;
// No copy, no move
CairoWrapper(const CairoWrapper&) = delete;
CairoWrapper& operator=(const CairoWrapper&) = delete;
CairoWrapper(CairoWrapper&&) = delete;
CairoWrapper& operator=(CairoWrapper&&) = delete;
// Cairo image surface functions
cairo_surface_t* cairo_image_surface_create(cairo_format_t format, int width, int height) override {
return ::cairo_image_surface_create(format, width, height);
@@ -86,9 +92,7 @@ class CairoWrapper : public ICairoWrapper {
PangoContext* pango_cairo_create_context(cairo_t* cr) override { return ::pango_cairo_create_context(cr); }
void pango_cairo_show_layout(cairo_t* cr, PangoLayout* layout) override {
::pango_cairo_show_layout(cr, layout);
}
void pango_cairo_show_layout(cairo_t* cr, PangoLayout* layout) override { ::pango_cairo_show_layout(cr, layout); }
// Pango layout functions
PangoLayout* pango_layout_new(PangoContext* context) override { return ::pango_layout_new(context); }

View File

@@ -21,6 +21,7 @@
#include <cairo.h>
#include <pango/pango.h>
#include <pango/pangocairo.h>
namespace ptprnt::graphics {
@@ -36,43 +37,43 @@ class ICairoWrapper {
// Cairo image surface functions
virtual cairo_surface_t* cairo_image_surface_create(cairo_format_t format, int width, int height) = 0;
virtual void cairo_surface_destroy(cairo_surface_t* surface) = 0;
virtual void cairo_surface_flush(cairo_surface_t* surface) = 0;
virtual void cairo_surface_mark_dirty(cairo_surface_t* surface) = 0;
virtual cairo_status_t cairo_surface_status(cairo_surface_t* surface) = 0;
virtual cairo_format_t cairo_image_surface_get_format(cairo_surface_t* surface) = 0;
virtual int cairo_image_surface_get_width(cairo_surface_t* surface) = 0;
virtual int cairo_image_surface_get_height(cairo_surface_t* surface) = 0;
virtual int cairo_image_surface_get_stride(cairo_surface_t* surface) = 0;
virtual unsigned char* cairo_image_surface_get_data(cairo_surface_t* surface) = 0;
virtual void cairo_surface_destroy(cairo_surface_t* surface) = 0;
virtual void cairo_surface_flush(cairo_surface_t* surface) = 0;
virtual void cairo_surface_mark_dirty(cairo_surface_t* surface) = 0;
virtual cairo_status_t cairo_surface_status(cairo_surface_t* surface) = 0;
virtual cairo_format_t cairo_image_surface_get_format(cairo_surface_t* surface) = 0;
virtual int cairo_image_surface_get_width(cairo_surface_t* surface) = 0;
virtual int cairo_image_surface_get_height(cairo_surface_t* surface) = 0;
virtual int cairo_image_surface_get_stride(cairo_surface_t* surface) = 0;
virtual unsigned char* cairo_image_surface_get_data(cairo_surface_t* surface) = 0;
virtual cairo_status_t cairo_surface_write_to_png(cairo_surface_t* surface, const char* filename) = 0;
// Cairo context functions
virtual cairo_t* cairo_create(cairo_surface_t* surface) = 0;
virtual void cairo_destroy(cairo_t* cr) = 0;
virtual void cairo_move_to(cairo_t* cr, double x, double y) = 0;
virtual cairo_t* cairo_create(cairo_surface_t* surface) = 0;
virtual void cairo_destroy(cairo_t* cr) = 0;
virtual void cairo_move_to(cairo_t* cr, double x, double y) = 0;
virtual void cairo_set_source_rgb(cairo_t* cr, double red, double green, double blue) = 0;
// Pango-Cairo functions
virtual PangoFontMap* pango_cairo_font_map_new() = 0;
virtual PangoContext* pango_cairo_create_context(cairo_t* cr) = 0;
virtual PangoFontMap* pango_cairo_font_map_new() = 0;
virtual PangoContext* pango_cairo_create_context(cairo_t* cr) = 0;
virtual void pango_cairo_show_layout(cairo_t* cr, PangoLayout* layout) = 0;
// Pango layout functions
virtual PangoLayout* pango_layout_new(PangoContext* context) = 0;
virtual PangoLayout* pango_layout_new(PangoContext* context) = 0;
virtual void pango_layout_set_font_description(PangoLayout* layout, const PangoFontDescription* desc) = 0;
virtual void pango_layout_set_text(PangoLayout* layout, const char* text, int length) = 0;
virtual void pango_layout_set_height(PangoLayout* layout, int height) = 0;
virtual void pango_layout_set_alignment(PangoLayout* layout, PangoAlignment alignment) = 0;
virtual void pango_layout_set_justify(PangoLayout* layout, gboolean justify) = 0;
virtual void pango_layout_set_text(PangoLayout* layout, const char* text, int length) = 0;
virtual void pango_layout_set_height(PangoLayout* layout, int height) = 0;
virtual void pango_layout_set_alignment(PangoLayout* layout, PangoAlignment alignment) = 0;
virtual void pango_layout_set_justify(PangoLayout* layout, gboolean justify) = 0;
#if PANGO_VERSION_MAJOR >= 1 && PANGO_VERSION_MINOR >= 50
virtual void pango_layout_set_justify_last_line(PangoLayout* layout, gboolean justify) = 0;
#endif
virtual void pango_layout_get_size(PangoLayout* layout, int* width, int* height) = 0;
// Pango font description functions
virtual PangoFontDescription* pango_font_description_new() = 0;
virtual void pango_font_description_set_size(PangoFontDescription* desc, gint size) = 0;
virtual PangoFontDescription* pango_font_description_new() = 0;
virtual void pango_font_description_set_size(PangoFontDescription* desc, gint size) = 0;
virtual void pango_font_description_set_family(PangoFontDescription* desc, const char* family) = 0;
// GObject reference counting