VSF Documented
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)
 
#define __describe_menu_item_anchor_menu(__idx, __ui_data, __screen)
 
#define __describe_menu_item_anchor_callback(__idx, __ui_data, __callback)
 
#define __end_describe_menu(__n, __value)
 
#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, ...)
 
#define describe_menu_item(__idx, __ui_data)
 
#define describe_menu_item_anchor_menu(__idx, __ui_data, __screen)
 
#define describe_menu_item_anchor_callback(__idx, __ui_data, __callback)
 
#define 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:555
Definition vsf_menusys.h:140
Definition vsf_menusys.h:130

◆ __describe_menu_item

#define __describe_menu_item ( __idx,
__ui_data )
Value:
[__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 )
Value:
[__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 )
Value:
[__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 )
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,
... )
Value:
__describe_menu(__name, __idx, (__id), (__x), (__y), (__w), (__h), (__item_num), (__user_type), __VA_ARGS__)
#define __describe_menu(__name, __idx, __id, __x, __y, __w, __h, __item_num, __user_type,...)
Definition vsf_menusys.h:56

◆ describe_menu_item

#define describe_menu_item ( __idx,
__ui_data )
Value:
__describe_menu_item(__idx, (__ui_data))
#define __describe_menu_item(__idx, __ui_data)
Definition vsf_menusys.h:74

◆ describe_menu_item_anchor_menu

#define describe_menu_item_anchor_menu ( __idx,
__ui_data,
__screen )
Value:
__describe_menu_item_anchor_menu((__idx), (__ui_data), (__screen))
#define __describe_menu_item_anchor_menu(__idx, __ui_data, __screen)
Definition vsf_menusys.h:76

◆ describe_menu_item_anchor_callback

#define describe_menu_item_anchor_callback ( __idx,
__ui_data,
__callback )
Value:
__describe_menu_item_anchor_callback((__idx), (__ui_data), (__callback))
#define __describe_menu_item_anchor_callback(__idx, __ui_data, __callback)
Definition vsf_menusys.h:78

◆ end_describe_menu_screen

#define end_describe_menu_screen ( __name,
__menu_num )
Value:
#define __end_describe_menu_screen(__name, __menu_num)
Definition vsf_menusys.h:84

◆ 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

typedef struct vsf_menusys_menu_item_t vsf_menusys_menu_item_t

◆ vsf_menusys_menu_info_t

typedef struct vsf_menusys_menu_info_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
Generated from commit: vsfteam/vsf@ceb53fd