// SDLAddSubMenu.h
#import "SDLRPCRequest.h"
/**
* Add a SDLSubMenu to the Command Menu
*
* A SDLSubMenu can only be added to the Top Level Menu (i.e.a SDLSubMenu cannot be
* added to a SDLSubMenu), and may only contain commands as children
*
*
* HMILevel needs to be FULL, LIMITED or BACKGROUD
*
*
* Since SmartDeviceLink 1.0
* see SDLDeleteSubMenu SDLAddCommand SDLDeleteCommand
*/
NS_ASSUME_NONNULL_BEGIN
@interface SDLAddSubMenu : SDLRPCRequest
- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName;
- (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName position:(UInt8)position;
/**
* @abstract a Menu ID that identifies a sub menu
* @discussion This value is used in
* SDLAddCommand to which SDLSubMenu is the parent of the command being added
*
*/
@property (strong, nonatomic) NSNumber *menuID;
/**
* @abstract a position of menu
* @discussion An NSNumber pointer representing the position within the items
* of the top level Command Menu. 0 will insert at the front, 1
* will insert after the first existing element, etc. Position of
* any submenu will always be located before the return and exit
* options
*
* Notes:
*
* -
* Min Value: 0; Max Value: 1000
* - If position is greater or equal than the number of items
* on top level, the sub menu will be appended by the end
* - If this parameter is omitted, the entry will be added at
* the end of the list
*
*/
@property (nullable, strong, nonatomic) NSNumber *position;
/**
* @abstract a menuName which is displayed representing this submenu item
* @discussion NSString which will be displayed representing this submenu item
*/
@property (strong, nonatomic) NSString *menuName;
@end
NS_ASSUME_NONNULL_END