diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-10 20:11:41 +0300 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-10 20:11:41 +0300 |
commit | 9525c77f553c2e188f6f99d3b6c01d5ec671a76e (patch) | |
tree | 8f5854db16645badd425b250f801da7e082055ee /lib/menu.c | |
parent | 702d808b285931850e66900bd6c7c7319ae6d73c (diff) | |
download | bemenu-9525c77f553c2e188f6f99d3b6c01d5ec671a76e.tar.gz bemenu-9525c77f553c2e188f6f99d3b6c01d5ec671a76e.tar.bz2 bemenu-9525c77f553c2e188f6f99d3b6c01d5ec671a76e.zip |
Setter first, then getter.
Diffstat (limited to 'lib/menu.c')
-rw-r--r-- | lib/menu.c | 98 |
1 files changed, 49 insertions, 49 deletions
@@ -266,25 +266,6 @@ int bmMenuRemoveItem(bmMenu *menu, bmItem *item) } /** - * Get highlighted item from bmMenu instance. - * - * @param menu bmMenu instance from where to get highlighted item. - * @return Selected bmItem instance, **NULL** if none highlighted. - */ -bmItem* bmMenuGetHighlightedItem(const bmMenu *menu) -{ - assert(menu); - - unsigned int count; - bmItem **items = bmMenuGetFilteredItems(menu, &count); - - if (!items || count <= menu->index) - return NULL; - - return items[menu->index]; -} - -/** * Highlight item in menu by index. * * @param menu bmMenu instance from where to highlight item. @@ -323,16 +304,22 @@ int bmMenuSetHighlighted(bmMenu *menu, bmItem *item) } /** - * Get selected items from bmMenu instance. + * Get highlighted item from bmMenu instance. * - * @param menu bmMenu instance from where to get selected items. - * @param outNmemb Reference to unsigned int where total count of returned items will be stored. - * @return Pointer to array of bmItem pointers. + * @param menu bmMenu instance from where to get highlighted item. + * @return Selected bmItem instance, **NULL** if none highlighted. */ -bmItem** bmMenuGetSelectedItems(const bmMenu *menu, unsigned int *outNmemb) +bmItem* bmMenuGetHighlightedItem(const bmMenu *menu) { assert(menu); - return _bmItemListGetItems(&menu->selection, outNmemb); + + unsigned int count; + bmItem **items = bmMenuGetFilteredItems(menu, &count); + + if (!items || count <= menu->index) + return NULL; + + return items[menu->index]; } /** @@ -352,23 +339,41 @@ int bmMenuSetSelectedItems(bmMenu *menu, bmItem **items, unsigned int nmemb) } /** - * Get filtered (displayed) items from bmMenu instance. - * - * @warning The pointer returned by this function _will_ be invalid when menu internally filters its list again. - * Do not store this pointer. + * Get selected items from bmMenu instance. * - * @param menu bmMenu instance from where to get filtered items. + * @param menu bmMenu instance from where to get selected items. * @param outNmemb Reference to unsigned int where total count of returned items will be stored. * @return Pointer to array of bmItem pointers. */ -bmItem** bmMenuGetFilteredItems(const bmMenu *menu, unsigned int *outNmemb) +bmItem** bmMenuGetSelectedItems(const bmMenu *menu, unsigned int *outNmemb) { assert(menu); + return _bmItemListGetItems(&menu->selection, outNmemb); +} - if (menu->filtered.list) - return _bmItemListGetItems(&menu->filtered, outNmemb); +/** + * Set items to bmMenu instance. + * Will replace all the old items on bmMenu instance. + * + * If items is **NULL**, or nmemb is zero, all items will be freed from the menu. + * + * @param menu bmMenu instance where items will be set. + * @param items Array of bmItem pointers to set. + * @param nmemb Total count of items in array. + * @return 1 on successful set, 0 on failure. + */ +int bmMenuSetItems(bmMenu *menu, const bmItem **items, unsigned int nmemb) +{ + assert(menu); - return _bmItemListGetItems(&menu->items, outNmemb); + int ret = _bmItemListSetItems(&menu->items, items, nmemb); + + if (ret) { + _bmItemListFreeList(&menu->selection); + _bmItemListFreeList(&menu->filtered); + } + + return ret; } /** @@ -387,28 +392,23 @@ bmItem** bmMenuGetItems(const bmMenu *menu, unsigned int *outNmemb) } /** - * Set items to bmMenu instance. - * Will replace all the old items on bmMenu instance. + * Get filtered (displayed) items from bmMenu instance. * - * If items is **NULL**, or nmemb is zero, all items will be freed from the menu. + * @warning The pointer returned by this function _will_ be invalid when menu internally filters its list again. + * Do not store this pointer. * - * @param menu bmMenu instance where items will be set. - * @param items Array of bmItem pointers to set. - * @param nmemb Total count of items in array. - * @return 1 on successful set, 0 on failure. + * @param menu bmMenu instance from where to get filtered items. + * @param outNmemb Reference to unsigned int where total count of returned items will be stored. + * @return Pointer to array of bmItem pointers. */ -int bmMenuSetItems(bmMenu *menu, const bmItem **items, unsigned int nmemb) +bmItem** bmMenuGetFilteredItems(const bmMenu *menu, unsigned int *outNmemb) { assert(menu); - int ret = _bmItemListSetItems(&menu->items, items, nmemb); - - if (ret) { - _bmItemListFreeList(&menu->selection); - _bmItemListFreeList(&menu->filtered); - } + if (menu->filtered.list) + return _bmItemListGetItems(&menu->filtered, outNmemb); - return ret; + return _bmItemListGetItems(&menu->items, outNmemb); } /** |