20#include "kwidgetlistbox.h"
22#include <tdeglobalsettings.h>
24KWidgetListbox::KWidgetListbox(TQWidget *parent,
const char *name)
25 : TQTable(parent, name)
29 setColumnStretchable(0,
true);
32 horizontalHeader()->hide();
33 verticalHeader()->hide();
34 setSelectionMode(TQTable::NoSelection);
35 setFocusStyle(TQTable::FollowStyle);
36 connect(
this, TQ_SIGNAL(currentChanged(
int,
int)),
37 this, TQ_SLOT(selectionChanged(
int,
int)));
38 setHScrollBarMode(TQScrollView::AlwaysOff);
39 setVScrollBarMode(TQScrollView::Auto);
42KWidgetListbox::~KWidgetListbox()
47void KWidgetListbox::clear()
49 for(
int i = 0; i < numRows(); ++i)
50 clearCellWidget(i, 0);
54int KWidgetListbox::insertItem(TQWidget* item,
int index)
66 setRowHeight(row, item->height());
67 setCellWidget(row, 0, item);
68 setItemColors(row, even(row));
72void KWidgetListbox::setSelected(TQWidget* item)
74 setSelected(index(item));
77void KWidgetListbox::selectionChanged(
int row,
int col)
79 ensureCellVisible(row, col);
84void KWidgetListbox::removeItem(TQWidget* item)
86 removeItem(index(item));
89void KWidgetListbox::removeItem(
int index)
95void KWidgetListbox::setSelected(
int index)
97 setCurrentCell(index, 0);
100int KWidgetListbox::selected()
const
105TQWidget* KWidgetListbox::selectedItem()
const
107 return item(selected());
110TQWidget* KWidgetListbox::item(
int index)
const
112 return cellWidget(index, 0);
115int KWidgetListbox::index(TQWidget* itm)
const
117 for(
int i = 0; i < numRows(); ++i)
123bool KWidgetListbox::even(
int index)
126 for(
int i = 0; i < numRows(); ++i)
136void KWidgetListbox::updateColors()
139 for(
int i = 0; i < numRows(); ++i)
143 setItemColors(i, (v%2 == 0));
149void KWidgetListbox::setItemColors(
int index,
bool even)
151 TQWidget* itm = item(index);
153 if(index == selected())
155 itm->setPaletteBackgroundColor(TDEGlobalSettings::highlightColor());
156 itm->setPaletteForegroundColor(TDEGlobalSettings::highlightedTextColor());
160 itm->setPaletteBackgroundColor(TDEGlobalSettings::baseColor());
161 itm->setPaletteForegroundColor(TDEGlobalSettings::textColor());
165 itm->setPaletteBackgroundColor(
166 TDEGlobalSettings::alternateBackgroundColor());
167 itm->setPaletteForegroundColor(TDEGlobalSettings::textColor());
171void KWidgetListbox::showItems(show_callback func,
void* data)
173 for(
int i = 0; i < numRows(); ++i)
179 if(func(i, item(i), data))
188void KWidgetListbox::showEvent(TQShowEvent*)
191 repaintContents(
false);
194void KWidgetListbox::paintCell(TQPainter*,
int,
int,
const TQRect&,
195 bool,
const TQColorGroup&)
200#include "kwidgetlistbox.moc"