7 #include <cairo/cairo.h> 15 template <
typename Type,
typename RetainProcType, RetainProcType RetainProc,
16 typename ReleaseProcType, ReleaseProcType ReleaseProc>
21 explicit Handle (Type h) : handle (h) {}
27 std::swap (handle, o.handle);
37 handle = RetainProc (o.handle);
57 operator Type ()
const {
return handle; }
58 operator bool ()
const {
return handle !=
nullptr; }
61 Type handle {
nullptr};
65 decltype (&cairo_destroy), cairo_destroy>;
68 Handle<cairo_surface_t*, decltype (&cairo_surface_reference), cairo_surface_reference,
69 decltype (&cairo_surface_destroy), cairo_surface_destroy>;
72 Handle<cairo_pattern_t*, decltype (&cairo_pattern_reference), cairo_pattern_reference,
73 decltype (&cairo_pattern_destroy), cairo_pattern_destroy>;
76 cairo_scaled_font_reference, decltype (&cairo_scaled_font_destroy),
77 cairo_scaled_font_destroy>;
Definition: cairoutils.h:17
Definition: customcontrols.cpp:8