aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcorvid <corvid@lavabit.com>2011-05-19 18:15:16 +0000
committercorvid <corvid@lavabit.com>2011-05-19 18:15:16 +0000
commit9acee8b367668cac92ccb280b33a02c523377f6c (patch)
tree79d4965a32ffefbb80bb2c2699a3935269249b78
parentc73820831ebc3e131b589554bc9558bcc693aa35 (diff)
forms listResource item selection
-rw-r--r--dw/fltkui.cc10
-rw-r--r--dw/fltkui.hh2
2 files changed, 7 insertions, 5 deletions
diff --git a/dw/fltkui.cc b/dw/fltkui.cc
index 4c303e37..f3192c22 100644
--- a/dw/fltkui.cc
+++ b/dw/fltkui.cc
@@ -1092,7 +1092,7 @@ void FltkListResource::widgetCallback (Fl_Widget *widget, void *data)
}
}
-void *FltkListResource::newItem (const char *str, bool enabled)
+void *FltkListResource::newItem (const char *str, bool enabled, bool selected)
{
Fl_Tree *tree = (Fl_Tree *) widget;
Fl_Tree_Item *parent = (Fl_Tree_Item *)currParent;
@@ -1103,6 +1103,7 @@ void *FltkListResource::newItem (const char *str, bool enabled)
item->activate(enabled);
item->user_data((void *)index);
itemsSelected.increase ();
+ itemsSelected.set (itemsSelected.size() - 1, selected);
return item;
}
@@ -1110,12 +1111,11 @@ void *FltkListResource::newItem (const char *str, bool enabled)
void FltkListResource::addItem (const char *str, bool enabled, bool selected)
{
Fl_Tree *tree = (Fl_Tree *) widget;
- Fl_Tree_Item *item = (Fl_Tree_Item *) newItem(str, enabled);
+ Fl_Tree_Item *item = (Fl_Tree_Item *) newItem(str, enabled, selected);
if (selected) {
if (mode == SELECTION_MULTIPLE) {
item->select(selected);
- itemsSelected.set (itemsSelected.size() - 1, selected);
} else {
const bool do_callback = true;
tree->select_only(item, do_callback);
@@ -1126,8 +1126,10 @@ void FltkListResource::addItem (const char *str, bool enabled, bool selected)
void FltkListResource::pushGroup (const char *name, bool enabled)
{
+ bool selected = false;
+
/* TODO: make it impossible to select a group */
- currParent = (Fl_Tree_Item *) newItem(name, enabled);
+ currParent = (Fl_Tree_Item *) newItem(name, enabled, selected);
queueResize (true);
}
diff --git a/dw/fltkui.hh b/dw/fltkui.hh
index 7b9d6d71..074a6166 100644
--- a/dw/fltkui.hh
+++ b/dw/fltkui.hh
@@ -490,7 +490,7 @@ protected:
private:
static void widgetCallback (Fl_Widget *widget, void *data);
- void *newItem (const char *str, bool enabled);
+ void *newItem (const char *str, bool enabled, bool selected);
void *currParent;
lout::misc::SimpleVector <bool> itemsSelected;
int showRows;