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

Go to the source code of this file.

Data Structures

union  vsf_tgui_status_t
 
struct  vsf_tgui_control_handler_t
 
struct  vsf_tgui_user_evt_handler
 
struct  vsf_tgui_margin_t
 
struct  i_tgui_v_vtable_t
 
struct  i_tgui_control_vtable_t
 

Macros

#define __VSF_TGUI_INTERFACE_CONTROLS_CONTROL
 
#define __VSF_TGUI_INTERFACE_CONTROLS_CONTAINER
 
#define VSF_TGUI_CTRL_STATUS_INITIALISED   VSF_BIT(0)
 
#define VSF_TGUI_CTRL_STATUS_ENABLED   VSF_BIT(1)
 
#define VSF_TGUI_CTRL_STATUS_VISIBLE   VSF_BIT(2)
 
#define VSF_TGUI_CTRL_STATUS_ACTIVE   VSF_BIT(3)
 
#define VSF_TGUI_CTRL_STATUS_HIDE_CONTAINER_CONTENT   VSF_BIT(4)
 
#define ____tgui_name_string_tag(__name, __type)    .node_name_ptr = "["#__type"]["#__name"]",
 
#define __tgui_name_string_tag(__name, __type)    ____tgui_name_string_tag(__name, __type)
 
#define ____tgui_node_list_init(__name, __parent_addr, __previous, __next)
 
#define __tgui_node_list_init(__name, __parent_addr, __previous, __next)    ____tgui_node_list_init(__name, __parent_addr, __previous, __next)
 
#define __tgui_control_base(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define __tgui_control_base_const(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define __describe_tgui_control_base( __NAME, __ID, __TYPE, ...)
 
#define __describe_tgui_container_base(__NAME, __ID, __TYPE, ...)
 
#define describe_tgui_container_base( __NAME, __ID, __TYPE, ...)
 
#define tgui_control_base( __NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define tgui_control_base_const( __NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define describe_tgui_control_base(__NAME, __ID, __TYPE, ...)
 
#define __tgui_control(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define tgui_control(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define __tgui_control_const(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define tgui_control_const(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define __use_tgui_container(__NAME, ...)
 
#define use_tgui_container(__NAME, ...)   __use_tgui_container(__NAME, __VA_ARGS__)
 
#define __tgui_container_base( __NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define tgui_container_base(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define __tgui_container_base_const(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define tgui_container_base_const(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define __tgui_container( __NAME, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 
#define tgui_container(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
 

Typedefs

typedef union vsf_tgui_status_t vsf_tgui_status_t
 
typedef fsm_rt_t vsf_tgui_controal_fsm_t(vsf_tgui_control_t *node_ptr, vsf_tgui_msg_t *ptMSG)
 
typedef struct vsf_tgui_control_handler_t vsf_tgui_control_handler_t
 
typedef struct vsf_tgui_user_evt_handler vsf_tgui_user_evt_handler
 
typedef struct vsf_tgui_margin_t vsf_tgui_margin_t
 

Functions

 declare_class (vsf_tgui_control_t) typedef struct vsf_tgui_control_subcall_t
 

Variables

 vsf_tgui_control_subcall_t
 
typedef fsm_rt_t vsf_tgui_method_t(vsf_tgui_control_t *control_ptr)
 
typedef fsm_rt_t vsf_tgui_v_method_render_t(vsf_tgui_control_t *control_ptr, vsf_tgui_region_t *ptDirtyRegion, vsf_tgui_control_refresh_mode_t tMode)
 
typedef struct i_tgui_v_vtable_t i_tgui_v_vtable_t
 
typedef struct i_tgui_control_vtable_t i_tgui_control_methods_t
 
uint8_t chVisibleItemCount
 
vsf_tgui_margin_t tContainerPadding
 
 vsf_tgui_control_refresh_mode_t
 
 which (union { inherit(vsf_msgt_container_t) vsf_tgui_control_t };vsf_tgui_v_container_t) implement_ex(struct
 
 end_def_class (vsf_tgui_container_t) declare_class(vsf_tgui_root_container_t) def_class(vsf_tgui_root_container_t
 
which(vsf_tgui_container_t) public end_def_class (vsf_tgui_root_container_t) typedef enum vsf_tgui_control_refresh_mode_t
 
 declare_class (vsf_tgui_timer_t) def_class(vsf_tgui_timer_t
 

Macro Definition Documentation

◆ __VSF_TGUI_INTERFACE_CONTROLS_CONTROL

#define __VSF_TGUI_INTERFACE_CONTROLS_CONTROL
Value:
{ \
.msg_handler = { \
(vsf_msgt_method_fsm_t *)&vsf_tgui_control_msg_handler, \
}, \
.Status = (vsf_msgt_method_status_t *) \
&vsf_tgui_control_status_get, \
}
vsf_msgt_method_shoot_t * Shoot
range check
Definition vsf_msg_tree.h:139
fsm_rt_t vsf_msgt_method_fsm_t(vsf_msgt_node_t *node_ptr, vsf_msgt_msg_t *msg_ptr)
Definition vsf_msg_tree.h:113
vsf_msgt_node_status_t vsf_msgt_method_status_t(vsf_msgt_node_t *)
Definition vsf_msg_tree.h:112
@ VSF_MSGT_NODE_HANDLER_TYPE_FSM
use fsm (same as normal callback)
Definition vsf_msg_tree.h:96
bool vsf_msgt_method_shoot_t(const vsf_msgt_node_t *, uintptr_t)
Definition vsf_msg_tree.h:111
bool vsf_tgui_control_shoot(const vsf_tgui_control_t *control_ptr, const vsf_tgui_location_t *ptLocation)
Definition vsf_tgui_control.c:387

\NOTE: Make sure #include "utilities/ooc_class.h" is close to the class ! definition and there is NO ANY OTHER module-interface-header file ! included in this file

◆ __VSF_TGUI_INTERFACE_CONTROLS_CONTAINER

#define __VSF_TGUI_INTERFACE_CONTROLS_CONTAINER
Value:
{ \
.msg_handler = { \
(vsf_msgt_method_fsm_t *)&vsf_tgui_container_msg_handler, \
}, \
.Status = (vsf_msgt_method_status_t *) \
&vsf_tgui_control_status_get, \
}

◆ VSF_TGUI_CTRL_STATUS_INITIALISED

#define VSF_TGUI_CTRL_STATUS_INITIALISED   VSF_BIT(0)

◆ VSF_TGUI_CTRL_STATUS_ENABLED

#define VSF_TGUI_CTRL_STATUS_ENABLED   VSF_BIT(1)

◆ VSF_TGUI_CTRL_STATUS_VISIBLE

#define VSF_TGUI_CTRL_STATUS_VISIBLE   VSF_BIT(2)

◆ VSF_TGUI_CTRL_STATUS_ACTIVE

#define VSF_TGUI_CTRL_STATUS_ACTIVE   VSF_BIT(3)

◆ VSF_TGUI_CTRL_STATUS_HIDE_CONTAINER_CONTENT

#define VSF_TGUI_CTRL_STATUS_HIDE_CONTAINER_CONTENT   VSF_BIT(4)

◆ ____tgui_name_string_tag

#define ____tgui_name_string_tag (   __name,
  __type 
)     .node_name_ptr = "["#__type"]["#__name"]",

◆ __tgui_name_string_tag

#define __tgui_name_string_tag (   __name,
  __type 
)     ____tgui_name_string_tag(__name, __type)

◆ ____tgui_node_list_init

#define ____tgui_node_list_init (   __name,
  __parent_addr,
  __previous,
  __next 
)
Value:
.Offset = { \
.previous = (intptr_t)&((__parent_addr)->__name) \
- (intptr_t)&((__parent_addr)->__previous), \
.next = (intptr_t)&((__parent_addr)->__next) \
- (intptr_t)&((__parent_addr)->__name), \
},
#define __name
Definition hci_transport_aic8800.c:552
int32_t intptr_t
Definition stdint.h:39

◆ __tgui_node_list_init

#define __tgui_node_list_init (   __name,
  __parent_addr,
  __previous,
  __next 
)     ____tgui_node_list_init(__name, __parent_addr, __previous, __next)

◆ __tgui_control_base

#define __tgui_control_base (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
.__NAME = { \
.parent_ptr = (vsf_msgt_container_t *) \
&(((__TYPE *)(__PARENT_ADDR))->use_as__vsf_msgt_node_t), \
.id = (__ID), \
__tgui_node_list_init(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT)\
__tgui_name_string_tag(__NAME, __TYPE) \
.bIsEnabled = true, \
.bIsVisible = true, \
VSF_TGUI_V_CONTROL_STATIC_INIT_DEFAULT \
__VA_ARGS__ \
VSF_TGUI_V_CONTROL_STATIC_INIT_OVERRIDE \
}

◆ __tgui_control_base_const

#define __tgui_control_base_const (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
.__NAME = (const __TYPE) { \
.parent_ptr = (vsf_msgt_container_t *) \
&((__PARENT_ADDR)->use_as__vsf_msgt_node_t), \
.id = (__ID), \
__tgui_node_list_init(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT)\
__tgui_name_string_tag(__NAME, __TYPE) \
.bIsEnabled = true, \
.bIsVisible = true, \
VSF_TGUI_V_CONTROL_STATIC_INIT_DEFAULT \
__VA_ARGS__ \
VSF_TGUI_V_CONTROL_STATIC_INIT_OVERRIDE \
}

◆ __describe_tgui_control_base

#define __describe_tgui_control_base (   __NAME,
  __ID,
  __TYPE,
  ... 
)
Value:
static const __TYPE __NAME = { \
.id = (__ID), \
__tgui_name_string_tag(__VAR, __TYPE) \
.bIsEnabled = true, \
.bIsVisible = true, \
VSF_TGUI_V_CONTROL_STATIC_INIT_DEFAULT \
__VA_ARGS__ \
VSF_TGUI_V_CONTROL_STATIC_INIT_OVERRIDE \
};
#define __tgui_name_string_tag(__name, __type)
Definition vsf_tgui_control.h:93

◆ __describe_tgui_container_base

#define __describe_tgui_container_base (   __NAME,
  __ID,
  __TYPE,
  ... 
)
Value:
__NAME, \
__ID, \
__TYPE, \
.is_container = true, \
.ContainerAttribute.bIsAutoSize = true, \
.node_ptr = \
(vsf_msgt_node_t*) \
&((*(__TYPE *)0).__TYPE##_FirstNode), \
__VA_ARGS__ \
)
#define VSF_TGUI_V_CONTAINER_STATIC_INIT_DEFAULT
Definition vsf_tgui_v_type.h:145
#define VSF_TGUI_V_CONTAINER_STATIC_INIT_OVERRIDE
Definition vsf_tgui_v_type.h:167
uint8_t is_container
whether it is a container or not
Definition vsf_msg_tree.h:177
#define __describe_tgui_control_base( __NAME, __ID, __TYPE, ...)
Definition vsf_tgui_control.h:156

◆ describe_tgui_container_base

#define describe_tgui_container_base (   __NAME,
  __ID,
  __TYPE,
  ... 
)
Value:
__ID, \
__TYPE, \
__VA_ARGS__)
#define __describe_tgui_container_base(__NAME, __ID, __TYPE, ...)
Definition vsf_tgui_control.h:171

◆ tgui_control_base

#define tgui_control_base (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__NAME, \
(__ID), \
__TYPE, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define __tgui_control_base(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
Definition vsf_tgui_control.h:116

◆ tgui_control_base_const

#define tgui_control_base_const (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__NAME, \
(__ID), \
__TYPE, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define __tgui_control_base_const(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
Definition vsf_tgui_control.h:136

◆ describe_tgui_control_base

#define describe_tgui_control_base (   __NAME,
  __ID,
  __TYPE,
  ... 
)
Value:
__ID, \
__TYPE, \
__VA_ARGS__)

◆ __tgui_control

#define __tgui_control (   __NAME,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
tgui_control_base( __NAME, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
@ VSF_TGUI_COMPONENT_ID_CONTROL
Definition vsf_msg_tree_cfg.h:46
struct vsf_tgui_control_t vsf_tgui_control_t
Definition vsf_tgui_common.h:506
#define tgui_control_base( __NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
Definition vsf_tgui_control.h:198

◆ tgui_control

#define tgui_control (   __NAME,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__tgui_control( __NAME, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define __tgui_control(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT,...)
Definition vsf_tgui_control.h:241

◆ __tgui_control_const

#define __tgui_control_const (   __NAME,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define tgui_control_base_const( __NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
Definition vsf_tgui_control.h:214

◆ tgui_control_const

#define tgui_control_const (   __NAME,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define __tgui_control_const(__NAME, __PARENT_ADDR, __PREVIOUS, __NEXT,...)
Definition vsf_tgui_control.h:257

◆ __use_tgui_container

#define __use_tgui_container (   __NAME,
  ... 
)
Value:
struct { \
implement(vsf_tgui_container_t) \
union { \
vsf_msgt_node_t __NAME##_FirstNode ; \
struct { \
__VA_ARGS__; \
}; \
}; \
} __NAME;

◆ use_tgui_container

#define use_tgui_container (   __NAME,
  ... 
)    __use_tgui_container(__NAME, __VA_ARGS__)

◆ __tgui_container_base

#define __tgui_container_base (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__NAME, \
__ID, \
__TYPE, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
.is_container = true, \
.ContainerAttribute.bIsAutoSize = true, \
.node_ptr = \
(vsf_msgt_node_t*) \
&((__PARENT_ADDR)->__NAME.__NAME##_FirstNode), \
__VA_ARGS__ \
)

◆ tgui_container_base

#define tgui_container_base (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__ID, \
__TYPE, \
__PARENT_ADDR, \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define __tgui_container_base( __NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
Definition vsf_tgui_control.h:288

◆ __tgui_container_base_const

#define __tgui_container_base_const (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__ID, \
__TYPE, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
.is_container = true, \
.ContainerAttribute.bIsAutoSize = true, \
.node_ptr = \
(vsf_msgt_node_t*) \
&((__PARENT_ADDR)->__NAME.__NAME##_FirstNode), \
__VA_ARGS__ \
)

◆ tgui_container_base_const

#define tgui_container_base_const (   __NAME,
  __ID,
  __TYPE,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__ID, \
__TYPE, \
__PARENT_ADDR, \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define __tgui_container_base_const(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
Definition vsf_tgui_control.h:327

◆ __tgui_container

#define __tgui_container (   __NAME,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
vsf_tgui_container_t, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
@ VSF_TGUI_COMPONENT_ID_CONTAINER
Definition vsf_msg_tree_cfg.h:47
#define tgui_container_base(__NAME, __ID, __TYPE, __PARENT_ADDR, __PREVIOUS, __NEXT, ...)
Definition vsf_tgui_control.h:312

◆ tgui_container

#define tgui_container (   __NAME,
  __PARENT_ADDR,
  __PREVIOUS,
  __NEXT,
  ... 
)
Value:
__tgui_container(__NAME, \
(__PARENT_ADDR), \
__PREVIOUS, \
__NEXT, \
__VA_ARGS__)
#define __tgui_container( __NAME, __PARENT_ADDR, __PREVIOUS, __NEXT,...)
Definition vsf_tgui_control.h:365

Typedef Documentation

◆ vsf_tgui_status_t

◆ vsf_tgui_controal_fsm_t

typedef fsm_rt_t vsf_tgui_controal_fsm_t(vsf_tgui_control_t *node_ptr, vsf_tgui_msg_t *ptMSG)

◆ vsf_tgui_control_handler_t

◆ vsf_tgui_user_evt_handler

◆ vsf_tgui_margin_t

◆ vsf_tgui_method_t

typedef fsm_rt_t vsf_tgui_method_t(vsf_tgui_control_t *control_ptr)

◆ vsf_tgui_v_method_render_t

typedef fsm_rt_t vsf_tgui_v_method_render_t(vsf_tgui_control_t *control_ptr, vsf_tgui_region_t *ptDirtyRegion, vsf_tgui_control_refresh_mode_t tMode)

◆ i_tgui_v_vtable_t

◆ i_tgui_control_methods_t

Function Documentation

◆ declare_class() [1/2]

declare_class ( vsf_tgui_control_t  )

◆ which()

which ( union { inherit(vsf_msgt_container_t) vsf_tgui_control_t };  vsf_tgui_v_container_t)

◆ end_def_class() [1/2]

end_def_class ( vsf_tgui_container_t  )

◆ end_def_class() [2/2]

which(vsf_tgui_container_t) public end_def_class ( vsf_tgui_root_container_t  )

◆ declare_class() [2/2]

declare_class ( vsf_tgui_timer_t  )

Variable Documentation

◆ vsf_tgui_control_subcall_t

vsf_tgui_control_subcall_t

◆ chVisibleItemCount

uint8_t chVisibleItemCount

◆ tContainerPadding

vsf_tgui_margin_t tContainerPadding

◆ vsf_tgui_control_refresh_mode_t

vsf_tgui_control_refresh_mode_t

◆ u29Interval

uint32_t u29Interval

◆ __pad0__

uint32_t __pad0__

◆ bIsRepeat

uint32_t bIsRepeat

◆ bEnabled

uint32_t bEnabled

◆ bIsWorking

uint32_t bIsWorking