20 #include "kwidgetlistbox.h" 22 #include <tdeglobalsettings.h> 24 KWidgetListbox::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);
42 KWidgetListbox::~KWidgetListbox()
47 void KWidgetListbox::clear()
49 for(
int i = 0; i < numRows(); ++i)
50 clearCellWidget(i, 0);
54 int KWidgetListbox::insertItem(TQWidget* item,
int index)
66 setRowHeight(row, item->height());
67 setCellWidget(row, 0, item);
68 setItemColors(row, even(row));
72 void KWidgetListbox::setSelected(TQWidget* item)
74 setSelected(index(item));
77 void KWidgetListbox::selectionChanged(
int row,
int col)
79 ensureCellVisible(row, col);
84 void KWidgetListbox::removeItem(TQWidget* item)
86 removeItem(index(item));
89 void KWidgetListbox::removeItem(
int index)
95 void KWidgetListbox::setSelected(
int index)
97 setCurrentCell(index, 0);
100 int KWidgetListbox::selected()
const 105 TQWidget* KWidgetListbox::selectedItem()
const 107 return item(selected());
110 TQWidget* KWidgetListbox::item(
int index)
const 112 return cellWidget(index, 0);
115 int KWidgetListbox::index(TQWidget* itm)
const 117 for(
int i = 0; i < numRows(); ++i)
123 bool KWidgetListbox::even(
int index)
126 for(
int i = 0; i < numRows(); ++i)
136 void KWidgetListbox::updateColors()
139 for(
int i = 0; i < numRows(); ++i)
143 setItemColors(i, (v%2 == 0));
149 void 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());
171 void KWidgetListbox::showItems(show_callback func,
void* data)
173 for(
int i = 0; i < numRows(); ++i)
179 if(func(i, item(i), data))
188 void KWidgetListbox::showEvent(TQShowEvent*)
191 repaintContents(
false);
194 void KWidgetListbox::paintCell(TQPainter*,
int,
int,
const TQRect&,
195 bool,
const TQColorGroup&)
200 #include "kwidgetlistbox.moc"