summaryrefslogtreecommitdiffstats
path: root/src/ui/cache/svg_preview_cache.cpp
diff options
context:
space:
mode:
authorBryce Harrington <bryce@bryceharrington.org>2007-02-20 08:08:25 +0000
committerbryce <bryce@users.sourceforge.net>2007-02-20 08:08:25 +0000
commitc8106f51b4f2f77e7ce9e65ecd9b75acf1696a79 (patch)
tree0273752c6fcd9a37f6f6400c8c437213e76ab801 /src/ui/cache/svg_preview_cache.cpp
parentMoving functions from svg_preview_cache.h to a new .cpp (diff)
downloadinkscape-c8106f51b4f2f77e7ce9e65ecd9b75acf1696a79.tar.gz
inkscape-c8106f51b4f2f77e7ce9e65ecd9b75acf1696a79.zip
Moving cache management code from .h to .cpp.
Making the marker dropdowns static so they can be updated. (bzr r2403)
Diffstat (limited to 'src/ui/cache/svg_preview_cache.cpp')
-rw-r--r--src/ui/cache/svg_preview_cache.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/ui/cache/svg_preview_cache.cpp b/src/ui/cache/svg_preview_cache.cpp
index 6b3bc3930..4aa46af2b 100644
--- a/src/ui/cache/svg_preview_cache.cpp
+++ b/src/ui/cache/svg_preview_cache.cpp
@@ -97,4 +97,51 @@ GdkPixbuf* render_pixbuf(NRArenaItem* root, double scale_factor, const NR::Rect&
return pixbuf;
}
+namespace Inkscape {
+namespace UI {
+namespace Cache {
+SvgPreview::SvgPreview()
+{
+}
+
+SvgPreview::~SvgPreview()
+{
+}
+
+Glib::ustring SvgPreview::cache_key(gchar const *name, unsigned psize) const {
+ Glib::ustring key = name;
+ key += ":";
+ key += psize;
+ return key;
+}
+
+GdkPixbuf* SvgPreview::get_preview_from_cache(const Glib::ustring& key) {
+ std::map<Glib::ustring, GdkPixbuf *>::iterator found = _pixmap_cache.find(key);
+ if ( found != _pixmap_cache.end() ) {
+ return found->second;
+ }
+ return NULL;
+}
+
+void SvgPreview::set_preview_in_cache(const Glib::ustring& key, GdkPixbuf* px) {
+ _pixmap_cache[key] = px;
+}
+
+GdkPixbuf* SvgPreview::get_preview(const gchar* id, NRArenaItem *root,
+ double scale_factor, unsigned int psize) {
+ // First try looking up the cached preview in the cache map
+ Glib::ustring key = cache_key(id, psize);
+ GdkPixbuf* px = get_preview_from_cache(key);
+
+ if (px == NULL) {
+ /*
+ px = render_pixbuf(root, scale_factor, dbox, psize);
+ set_preview_in_cache(key, px);
+ */
+ }
+}
+
+};
+};
+};