diff options
Diffstat (limited to 'dw/fltkui.cc')
-rw-r--r-- | dw/fltkui.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/dw/fltkui.cc b/dw/fltkui.cc index 5e4f3c56..d2fae962 100644 --- a/dw/fltkui.cc +++ b/dw/fltkui.cc @@ -1131,6 +1131,14 @@ void FltkOptionMenuResource::addItem (const char *str, queueResize (true); } +void FltkOptionMenuResource::setItem (int index, bool selected) +{ + if (selected) { + ((Fl_Choice *)widget)->value(menu+index); + queueResize (true); + } +} + void FltkOptionMenuResource::pushGroup (const char *name, bool enabled) { Fl_Menu_Item *item = newItem(); @@ -1257,6 +1265,22 @@ void FltkListResource::addItem (const char *str, bool enabled, bool selected) queueResize (true); } +void FltkListResource::setItem (int index, bool selected) +{ + Fl_Tree *tree = (Fl_Tree *) widget; + Fl_Tree_Item *item = tree->root()->child(index); + + /* TODO: handle groups */ + if (item) { + itemsSelected.set (index, selected); + if (mode == SELECTION_MULTIPLE) + item->select(selected); + else if (selected) + tree->select_only(item); + queueResize (true); + } +} + void FltkListResource::pushGroup (const char *name, bool enabled) { bool selected = false; |