DVX_GUI/dvx/widgets/widgetListBox.c
2026-03-09 22:50:06 -05:00

62 lines
1.4 KiB
C

// widgetListBox.c — ListBox widget
#include "widgetInternal.h"
// ============================================================
// wgtListBox
// ============================================================
WidgetT *wgtListBox(WidgetT *parent) {
WidgetT *w = widgetAlloc(parent, WidgetListBoxE);
if (w) {
w->as.listBox.selectedIdx = -1;
}
return w;
}
// ============================================================
// wgtListBoxGetSelected
// ============================================================
int32_t wgtListBoxGetSelected(const WidgetT *w) {
if (!w || w->type != WidgetListBoxE) {
return -1;
}
return w->as.listBox.selectedIdx;
}
// ============================================================
// wgtListBoxSetItems
// ============================================================
void wgtListBoxSetItems(WidgetT *w, const char **items, int32_t count) {
if (!w || w->type != WidgetListBoxE) {
return;
}
w->as.listBox.items = items;
w->as.listBox.itemCount = count;
if (w->as.listBox.selectedIdx >= count) {
w->as.listBox.selectedIdx = -1;
}
}
// ============================================================
// wgtListBoxSetSelected
// ============================================================
void wgtListBoxSetSelected(WidgetT *w, int32_t idx) {
if (!w || w->type != WidgetListBoxE) {
return;
}
w->as.listBox.selectedIdx = idx;
}