VSF Documented
Data Structures | Macros | Typedefs | Functions | Variables
vsf_menusys.h File Reference
#include "../vsf_ui_cfg.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

struct  vsf_menusys_menu_item_t
 
struct  vsf_menusys_menu_info_t
 

Macros

#define __describe_menu(__name, __idx, __id, __x, __y, __w, __h, __item_num, __user_type, ...)
 
#define __describe_menu_item(__idx, __ui_data)    [__idx] = { .ui_data = (void *)(__ui_data), .anchor_type = VSF_MENU_ITEM_ANCHOR_TYPE_NONE, }
 
#define __describe_menu_item_anchor_menu(__idx, __ui_data, __screen)    [__idx] = { .ui_data = (void *)(__ui_data), .anchor_type = VSF_MENU_ITEM_ANCHOR_TYPE_MENU, .anchor.screen = (vsf_menusys_screen_t *)(__screen), }
 
#define __describe_menu_item_anchor_callback(__idx, __ui_data, __callback)    [__idx] = { .ui_data = (void *)(__ui_data), .anchor_type = VSF_MENU_ITEM_ANCHOR_TYPE_CALLBACK, .anchor.callback = (__callback), }
 
#define __end_describe_menu(__n, __value)    { .info = &__##__value##_menu##__n##_info.use_as__vsf_menusys_menu_info_t, },
 
#define __end_describe_menu_screen(__name, __menu_num)
 
#define describe_menu_screen(__name)
 
#define describe_menu(__name, __idx, __id, __x, __y, __w, __h, __item_num, __user_type, ...)    __describe_menu(__name, __idx, (__id), (__x), (__y), (__w), (__h), (__item_num), (__user_type), __VA_ARGS__)
 
#define describe_menu_item(__idx, __ui_data)    __describe_menu_item(__idx, (__ui_data))
 
#define describe_menu_item_anchor_menu(__idx, __ui_data, __screen)    __describe_menu_item_anchor_menu((__idx), (__ui_data), (__screen))
 
#define describe_menu_item_anchor_callback(__idx, __ui_data, __callback)    __describe_menu_item_anchor_callback((__idx), (__ui_data), (__callback))
 
#define end_describe_menu_screen(__name, __menu_num)    __end_describe_menu_screen(__name, __menu_num)
 
#define describe_menusys(__name, __screen_stack_size)
 

Typedefs

typedef void(* vsf_menusys_menu_anchor_callback_t) (vsf_menusys_menu_t *menu, uint_fast16_t idx)
 
typedef struct vsf_menusys_menu_item_t vsf_menusys_menu_item_t
 
typedef struct vsf_menusys_menu_info_t vsf_menusys_menu_info_t
 

Functions

 declare_simple_class (vsf_menusys_t) declare_simple_class(vsf_menusys_screen_t) declare_simple_class(vsf_menusys_menu_t) typedef enum vsf_menusys_item_anchor_type_t
 
 def_simple_class (vsf_menusys_menu_t)
 
 def_simple_class (vsf_menusys_screen_t)
 
 def_simple_class (vsf_menusys_t)
 
void vsf_menusys_init (vsf_menusys_t *screen)
 
void vsf_menusys_move_item_relative (vsf_menusys_t *menusys, uint_fast8_t menu_idx, int_fast8_t step)
 
void vsf_menusys_move_item_absolute (vsf_menusys_t *menusys, uint_fast8_t menu_idx, uint_fast8_t item_idx)
 
void vsf_menusys_select_cur_item (vsf_menusys_t *menusys, uint_fast8_t menu_idx)
 
void vsf_menusys_enter_screen (vsf_menusys_t *menusys, vsf_menusys_screen_t *screen)
 
void vsf_menusys_leave_screen (vsf_menusys_t *menusys)
 
vsf_menusys_menu_t * vsf_menusys_poll (vsf_menusys_t *menusys, int_fast16_t *idx)
 
void vsf_menusys_menu_updated (vsf_menusys_t *menusys, vsf_menusys_menu_t *menu)
 

Variables

 vsf_menusys_item_anchor_type_t
 

Macro Definition Documentation

◆ __describe_menu

#define __describe_menu (   __name,
  __idx,
  __id,
  __x,
  __y,
  __w,
  __h,
  __item_num,
  __user_type,
  ... 
)
Value:
typedef struct __##__name##_menu##__idx##_info_t { \
vsf_menusys_menu_item_t __items[(__item_num)]; \
} __##__name##_menu##__idx##_info_t; \
__##__name##_menu##__idx##_info_t __##__name##_menu##__idx##_info = { \
.x = (__x), \
.y = (__y), \
.w = (__w), \
.h = (__h), \
.item_num = (__item_num), \
.id = (__id), \
.user_type = (__user_type), \
.__items = { \
__VA_ARGS__ \
}, \
};
#define __name
Definition hci_transport_aic8800.c:552
Definition vsf_menusys.h:140
Definition vsf_menusys.h:130

◆ __describe_menu_item

#define __describe_menu_item (   __idx,
  __ui_data 
)     [__idx] = { .ui_data = (void *)(__ui_data), .anchor_type = VSF_MENU_ITEM_ANCHOR_TYPE_NONE, }

◆ __describe_menu_item_anchor_menu

#define __describe_menu_item_anchor_menu (   __idx,
  __ui_data,
  __screen 
)     [__idx] = { .ui_data = (void *)(__ui_data), .anchor_type = VSF_MENU_ITEM_ANCHOR_TYPE_MENU, .anchor.screen = (vsf_menusys_screen_t *)(__screen), }

◆ __describe_menu_item_anchor_callback

#define __describe_menu_item_anchor_callback (   __idx,
  __ui_data,
  __callback 
)     [__idx] = { .ui_data = (void *)(__ui_data), .anchor_type = VSF_MENU_ITEM_ANCHOR_TYPE_CALLBACK, .anchor.callback = (__callback), }

◆ __end_describe_menu

#define __end_describe_menu (   __n,
  __value 
)     { .info = &__##__value##_menu##__n##_info.use_as__vsf_menusys_menu_info_t, },

◆ __end_describe_menu_screen

#define __end_describe_menu_screen (   __name,
  __menu_num 
)
Value:
typedef struct __##__name##_menu_screen_t { \
implement(vsf_menusys_screen_t) \
vsf_menusys_menu_t __menus[(__menu_num)]; \
} __##__name##_menu_screen_t; \
__##__name##_menu_screen_t __name = { \
.menu_num = (__menu_num), \
.__menus = { \
VSF_MREPEAT(__menu_num, __end_describe_menu, __name) \
}, \
};
#define __end_describe_menu(__n, __value)
Definition vsf_menusys.h:81

◆ describe_menu_screen

#define describe_menu_screen (   __name)

◆ describe_menu

#define describe_menu (   __name,
  __idx,
  __id,
  __x,
  __y,
  __w,
  __h,
  __item_num,
  __user_type,
  ... 
)     __describe_menu(__name, __idx, (__id), (__x), (__y), (__w), (__h), (__item_num), (__user_type), __VA_ARGS__)

◆ describe_menu_item

#define describe_menu_item (   __idx,
  __ui_data 
)     __describe_menu_item(__idx, (__ui_data))

◆ describe_menu_item_anchor_menu

#define describe_menu_item_anchor_menu (   __idx,
  __ui_data,
  __screen 
)     __describe_menu_item_anchor_menu((__idx), (__ui_data), (__screen))

◆ describe_menu_item_anchor_callback

#define describe_menu_item_anchor_callback (   __idx,
  __ui_data,
  __callback 
)     __describe_menu_item_anchor_callback((__idx), (__ui_data), (__callback))

◆ end_describe_menu_screen

#define end_describe_menu_screen (   __name,
  __menu_num 
)     __end_describe_menu_screen(__name, __menu_num)

◆ describe_menusys

#define describe_menusys (   __name,
  __screen_stack_size 
)
Value:
typedef struct __##__name##_menusys_t { \
implement(vsf_menusys_t) \
vsf_menusys_screen_t * __screen_stack[(__screen_stack_size)]; \
} __##__name##_menusys_t; \
__##__name##_menusys_t __name = { \
.screen_stack_size = (__screen_stack_size), \
};

Typedef Documentation

◆ vsf_menusys_menu_anchor_callback_t

typedef void(* vsf_menusys_menu_anchor_callback_t) (vsf_menusys_menu_t *menu, uint_fast16_t idx)

◆ vsf_menusys_menu_item_t

◆ vsf_menusys_menu_info_t

Function Documentation

◆ declare_simple_class()

declare_simple_class ( vsf_menusys_t  )

◆ def_simple_class() [1/3]

def_simple_class ( vsf_menusys_menu_t  )

◆ def_simple_class() [2/3]

def_simple_class ( vsf_menusys_screen_t  )

◆ def_simple_class() [3/3]

def_simple_class ( vsf_menusys_t  )

◆ vsf_menusys_init()

void vsf_menusys_init ( vsf_menusys_t *  screen)
extern

◆ vsf_menusys_move_item_relative()

void vsf_menusys_move_item_relative ( vsf_menusys_t *  menusys,
uint_fast8_t  menu_idx,
int_fast8_t  step 
)
extern

◆ vsf_menusys_move_item_absolute()

void vsf_menusys_move_item_absolute ( vsf_menusys_t *  menusys,
uint_fast8_t  menu_idx,
uint_fast8_t  item_idx 
)
extern

◆ vsf_menusys_select_cur_item()

void vsf_menusys_select_cur_item ( vsf_menusys_t *  menusys,
uint_fast8_t  menu_idx 
)
extern

◆ vsf_menusys_enter_screen()

void vsf_menusys_enter_screen ( vsf_menusys_t *  menusys,
vsf_menusys_screen_t *  screen 
)
extern

◆ vsf_menusys_leave_screen()

void vsf_menusys_leave_screen ( vsf_menusys_t *  menusys)
extern

◆ vsf_menusys_poll()

vsf_menusys_menu_t * vsf_menusys_poll ( vsf_menusys_t *  menusys,
int_fast16_t idx 
)
extern

◆ vsf_menusys_menu_updated()

void vsf_menusys_menu_updated ( vsf_menusys_t *  menusys,
vsf_menusys_menu_t *  menu 
)
extern

Variable Documentation

◆ vsf_menusys_item_anchor_type_t

vsf_menusys_item_anchor_type_t