Horizon
svg_overlay.hpp
1 #pragma once
2 #include <gtkmm.h>
3 #include <librsvg/rsvg.h>
4 
5 namespace horizon {
6 class SVGOverlay : public Gtk::Overlay {
7 public:
8  SVGOverlay(const guint8 *data, gsize data_len);
9  SVGOverlay(const char *resource);
10  ~SVGOverlay();
11 
12  void add_at_sub(Gtk::Widget &widget, const char *sub);
13  std::map<std::string, std::string> sub_texts;
14 
15 private:
16  RsvgHandle *handle = nullptr;
17  void init(const guint8 *data, gsize data_len);
18  Gtk::DrawingArea *area;
19  bool draw(const Cairo::RefPtr<Cairo::Context> &ctx);
20 };
21 } // namespace horizon