跳转至

lib/graphic/widget/menu/menu_item.h

Menu item widget for menu selection options. More...

Classes

Name
struct CFBD_MenuItemCallbackPack
struct __CFBD_MenuItem
struct __CFBD_MenuItemArray

Types

Name
typedef void(*)(void *user_data) CFBD_MenuItemCallback
Callback function type for menu item activation.
typedef struct __CFBD_MenuItem CFBD_MenuItem
Single menu item structure.
typedef struct __CFBD_MenuItemArray CFBD_MenuItemGroup
Array container for menu items.

Functions

Name
void CFBD_MenuItemInit(CFBD_MenuItem * menuItem, CFBDGraphic_Point * tl, CFBD_MenuItemCallbackPack * callbacks)

Detailed Description

Menu item widget for menu selection options.

Provides menu item structures and initialization for creating clickable menu options with optional callbacks.

Types Documentation

typedef CFBD_MenuItemCallback

CFBD_MenuItemCallback;

Callback function type for menu item activation.

Parameters:

  • user_data - User-supplied callback context data

Return: void

Called when user selects/activates a menu item.

typedef CFBD_MenuItem

CFBD_MenuItem;

Single menu item structure.

See:

Represents one menu item with label, position, and optional callback.

typedef CFBD_MenuItemGroup

CFBD_MenuItemGroup;

Array container for menu items.

See: CFBD_MenuItem

Manages dynamic array of menu items with capacity and count tracking.

Functions Documentation

function CFBD_MenuItemInit

void CFBD_MenuItemInit(
    CFBD_MenuItem * menuItem,
    CFBDGraphic_Point * tl,
    CFBD_MenuItemCallbackPack * callbacks
)

Source code

#pragma once
#include "base/point.h"
#include "widget/text.h"

typedef void (*CFBD_MenuItemCallback)(void* user_data);

typedef struct
{
    CFBD_MenuItemCallback callback;

    void* user_data;
} CFBD_MenuItemCallbackPack;

typedef struct __CFBD_MenuItem
{
    char* label;

    CFBDGraphic_Point tl;

    CFBD_MenuItemCallbackPack on_select;

    CFBDGraphic_Text text_obj;
} CFBD_MenuItem;

typedef struct __CFBD_MenuItemArray
{
    CFBD_MenuItem* pItems;

    size_t capacity;

    size_t count;
} CFBD_MenuItemGroup;

void CFBD_MenuItemInit(CFBD_MenuItem* menuItem,
                       CFBDGraphic_Point* tl,
                       CFBD_MenuItemCallbackPack* callbacks);

Updated on 2026-02-03 at 13:21:55 +0000