diff options
| author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-10 20:09:34 +0300 | 
|---|---|---|
| committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-10 20:09:34 +0300 | 
| commit | 702d808b285931850e66900bd6c7c7319ae6d73c (patch) | |
| tree | d970e5792181b669b191f9e58c1e6eb5c1f7dc38 | |
| parent | a6d0413b972580f3bbfde8750090270b0d8d463e (diff) | |
| download | bemenu-702d808b285931850e66900bd6c7c7319ae6d73c.tar.gz bemenu-702d808b285931850e66900bd6c7c7319ae6d73c.tar.bz2 bemenu-702d808b285931850e66900bd6c7c7319ae6d73c.zip | |
Make it possible to set and get userdata pointers.
| -rw-r--r-- | lib/bemenu.h | 34 | ||||
| -rw-r--r-- | lib/internal.h | 12 | ||||
| -rw-r--r-- | lib/item.c | 25 | ||||
| -rw-r--r-- | lib/menu.c | 25 | 
4 files changed, 96 insertions, 0 deletions
| diff --git a/lib/bemenu.h b/lib/bemenu.h index 250ad53..65625b3 100644 --- a/lib/bemenu.h +++ b/lib/bemenu.h @@ -123,6 +123,23 @@ void bmMenuFreeItems(bmMenu *menu);   * @{ */  /** + * Set userdata pointer to bmMenu instance. + * Userdata will be carried unmodified by the instance. + * + * @param menu bmMenu instance where to set userdata pointer. + * @param userdata Pointer to userdata. + */ +void bmMenuSetUserdata(bmMenu *menu, void *userdata); + +/** + * Get userdata pointer from bmMenu instance. + * + * @param menu bmMenu instance which userdata pointer to get. + * @return Pointer for unmodified userdata. + */ +void* bmMenuGetUserdata(bmMenu *menu); + +/**   * Set active filter mode to bmMenu instance.   *   * @param menu bmMenu instance where to set filter mode. @@ -352,6 +369,23 @@ void bmItemFree(bmItem *item);   * @{ */  /** + * Set userdata pointer to bmItem instance. + * Userdata will be carried unmodified by the instance. + * + * @param item bmItem instance where to set userdata pointer. + * @param userdata Pointer to userdata. + */ +void bmItemSetUserdata(bmItem *item, void *userdata); + +/** + * Get userdata pointer from bmItem instance. + * + * @param item bmItem instance which userdata pointer to get. + * @return Pointer for unmodified userdata. + */ +void* bmItemGetUserdata(bmItem *item); + +/**   * Set text to bmItem instance.   *   * @param item bmItem instance where to set text. diff --git a/lib/internal.h b/lib/internal.h index d0a9848..790b4ed 100644 --- a/lib/internal.h +++ b/lib/internal.h @@ -10,6 +10,12 @@   */  struct _bmItem {      /** +     * Userdata pointer. +     * This pointer will be passed around with the item untouched. +     */ +    void *userdata; + +    /**       * Primary text shown on item as null terminated C "string".       * Matching will be done against this text as well.       */ @@ -60,6 +66,12 @@ struct _bmItemList {   */  struct _bmMenu {      /** +     * Userdata pointer. +     * This pointer will be passed around with the menu untouched. +     */ +    void *userdata; + +    /**       * Underlying renderer access.       */      struct _bmRenderApi renderApi; @@ -36,6 +36,31 @@ void bmItemFree(bmItem *item)  }  /** + * Set userdata pointer to bmItem instance. + * Userdata will be carried unmodified by the instance. + * + * @param item bmItem instance where to set userdata pointer. + * @param userdata Pointer to userdata. + */ +void bmItemSetUserdata(bmItem *item, void *userdata) +{ +    assert(item); +    item->userdata = userdata; +} + +/** + * Get userdata pointer from bmItem instance. + * + * @param item bmItem instance which userdata pointer to get. + * @return Pointer for unmodified userdata. + */ +void* bmItemGetUserdata(bmItem *item) +{ +    assert(item); +    return item->userdata; +} + +/**   * Set text to bmItem instance.   *   * @param item bmItem instance where to set text. @@ -103,6 +103,31 @@ void bmMenuFreeItems(bmMenu *menu)  }  /** + * Set userdata pointer to bmMenu instance. + * Userdata will be carried unmodified by the instance. + * + * @param menu bmMenu instance where to set userdata pointer. + * @param userdata Pointer to userdata. + */ +void bmMenuSetUserdata(bmMenu *menu, void *userdata) +{ +    assert(menu); +    menu->userdata = userdata; +} + +/** + * Get userdata pointer from bmMenu instance. + * + * @param menu bmMenu instance which userdata pointer to get. + * @return Pointer for unmodified userdata. + */ +void* bmMenuGetUserdata(bmMenu *menu) +{ +    assert(menu); +    return menu->userdata; +} + +/**   * Set active filter mode to bmMenu instance.   *   * @param menu bmMenu instance where to set filter mode. | 
