20 #ifndef FANCYLISTVIEWITEM 21 #define FANCYLISTVIEWITEM 23 #include <tqvaluevector.h> 24 #include <tqpainter.h> 26 #include <tqlistview.h> 27 #include <tdelistview.h> 29 class TextPaintStyleStore {
37 Item(
const TQFont& f = TQFont(),
const TQColor& c = TQColor(),
const TQColor b = TQColor() ) : font(f), color(c), background(b) {
41 return background.isValid();
45 return color.isValid();
49 typedef TQMap<int, Item> Store ;
51 TextPaintStyleStore( TQFont defaultFont=TQFont() ) {
52 m_styles.insert( 0, Item( defaultFont ) );
55 Item& getStyle(
int num ) {
56 Store::Iterator it = m_styles.find( num );
57 if( it != m_styles.end() )
return *it;
61 void addStyle(
int num, Item& style ) {
62 m_styles[num] = style;
65 void addStyle(
int num,
const TQFont& font ) {
66 m_styles[num] = Item( font );
69 bool hasStyle(
int num ) {
70 Store::Iterator it = m_styles.find( num );
71 return ( it != m_styles.end() );
84 Item(
const TQString& t =
"",
int st = 0 ) : text(t), style(st) {
88 typedef TQValueList<Item> Chain;
94 TextPaintItem(
const TQString& text=
"") {
98 Item& addItem(
const TQString& item,
int style = 0) {
99 m_chain.append( Item(item, style) );
100 return m_chain.back();
107 operator TQString ()
const {
109 Chain::const_iterator it = m_chain.begin();
110 while(it != m_chain.end()) {
127 FancyListViewItem(TextPaintStyleStore& styles, TQListView *parent,
const TQString &label1,
const TQString &label2=
"") : TDEListViewItem(parent, label1, label2), m_styles(styles) {
128 init(label1, label2);
131 FancyListViewItem(TextPaintStyleStore& styles, TQListViewItem *parent,
const TQString &label1,
const TQString &label2=
"") : TDEListViewItem(parent, label1, label2), m_styles(styles) {
132 init(label1, label2);
135 virtual void paintCell(TQPainter *painter,
const TQColorGroup &cg,
int column,
int width,
int align);
136 virtual int width(
const TQFontMetrics &fm,
const TQListView *lv,
int column);
137 virtual void setText (
int column,
const TQString & text );
138 virtual TQString text(
int column)
const;
140 inline void clear() {
144 inline TextPaintItem& item(
int column = 0) {
145 if(m_items.isEmpty()) {
146 m_items.append( TextPaintItem() );
149 return m_items[column];
152 void setItem(
int column, TextPaintItem item);
154 virtual TQColor backgroundColor(
int col);
155 void init(
const TQString& label1,
const TQString& label2);
156 int textWidth(
const TQFont& font,
const TQString& text);
157 TQValueVector<TextPaintItem> m_items;
159 TextPaintStyleStore& m_styles;
does not support multiple column, a "column" represents a part of the real first column TDEListViewIt...