2 /* This file is part of
3 * ======================================================
5 * LyX, The Document Processor
7 * Copyright 1995-2001 The LyX Team
9 * ======================================================*/
11 #ifndef COLOR_HANDLER_H
12 #define COLOR_HANDLER_H
18 #include <boost/smart_ptr.hpp>
20 // This is only included to provide stuff for the non-public sections
23 #include "PainterBase.h"
29 * This is a factory class that can produce GCs with a specific
30 * color. It will cache GCs for performance.
32 class LyXColorHandler {
39 unsigned long colorPixel(LColor::color c);
41 GC getGCForeground(LColor::color c);
43 GC getGCLinepars(PainterBase::line_style,
44 PainterBase::line_width, LColor::color c);
45 /// update the cache after a color definition change
46 void updateColor(LColor::color c);
54 GC colorGCcache[LColor::ignore + 1];
56 typedef std::map<int, GC> LineGCCache;
58 LineGCCache lineGCcache;
64 extern boost::scoped_ptr<LyXColorHandler> lyxColorHandler;