aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Bodenmann <joel@unormal.org>2013-10-23 00:18:03 +0200
committerinmarket <andrewh@inmarket.com.au>2013-10-23 17:28:04 +1000
commit6cc80926f00ce8d6533298cbb5ea061c1446287b (patch)
tree8b70c0e71af851b8f889eac1cd6499f804a09225
parent5f17570ebcba8998757cdcb2df0a92a6215b7448 (diff)
downloaduGFX-6cc80926f00ce8d6533298cbb5ea061c1446287b.tar.gz
uGFX-6cc80926f00ce8d6533298cbb5ea061c1446287b.tar.bz2
uGFX-6cc80926f00ce8d6533298cbb5ea061c1446287b.zip
Added gwinListGetSelectedText()
-rw-r--r--include/gwin/list.h13
-rw-r--r--src/gwin/list.c12
2 files changed, 25 insertions, 0 deletions
diff --git a/include/gwin/list.h b/include/gwin/list.h
index fc189658..05433e87 100644
--- a/include/gwin/list.h
+++ b/include/gwin/list.h
@@ -205,6 +205,19 @@ bool_t gwinListItemIsSelected(GHandle gh, int item);
*/
int gwinListGetSelected(GHandle gh);
+/**
+ * @brief Get the text of the selected item
+ *
+ * @param[in] gh The widget handle (must be a list handle)
+ *
+ * @return The test of the selected list item for a single-select list.
+ *
+ * @note It always returns NULL (nothing selected) for a multi-select list.
+ *
+ * @api
+ */
+const char* gwinListGetSelectedText(GHandle gh);
+
#if GWIN_NEED_LIST_IMAGES || defined(__DOXYGEN__)
/**
* @brief Set the image for a list item
diff --git a/src/gwin/list.c b/src/gwin/list.c
index 5407cb36..cf0bebc4 100644
--- a/src/gwin/list.c
+++ b/src/gwin/list.c
@@ -536,6 +536,18 @@ int gwinListItemCount(GHandle gh) {
return gh2obj->cnt;
}
+const char* gwinListGetSelectedText(GHandle gh) {
+ // is it a valid handle?
+ if (gh->vmt != (gwinVMT *)&listVMT)
+ return 0;
+
+ // return NULL if nothing is selected (or multi-select)
+ if (gwinListGetSelected(gh) < 0)
+ return 0;
+
+ return gwinListItemGetText(gh, gwinListGetSelected(gh));
+}
+
#if GWIN_NEED_LIST_IMAGES
void gwinListItemSetImage(GHandle gh, int item, gdispImage *pimg) {
const gfxQueueASyncItem * qi;