diff options
Diffstat (limited to 'imgmanager.cpp')
-rw-r--r-- | imgmanager.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/imgmanager.cpp b/imgmanager.cpp index 2d9c0aa..ce26b0f 100644 --- a/imgmanager.cpp +++ b/imgmanager.cpp @@ -27,3 +27,18 @@ Glib::RefPtr<Gdk::Pixbuf> ImageManager::GetFromURLIfCached(std::string url) { return Glib::RefPtr<Gdk::Pixbuf>(nullptr); } + +Glib::RefPtr<Gdk::Pixbuf> ImageManager::GetPlaceholder(int size) { + std::string name = "/placeholder" + std::to_string(size); + if (m_pixs.find(name) != m_pixs.end()) + return m_pixs.at(name); + + try { + auto buf = Gdk::Pixbuf::create_from_file("res/decamarks.png", size, size); + m_pixs[name] = buf; + return buf; + } catch (std::exception &e) { + fprintf(stderr, "error loading placeholder\n"); + return Glib::RefPtr<Gdk::Pixbuf>(nullptr); + } +} |