/* SPDX-License-Identifier: LGPL-2.1-only OR BSD-3-Clause */
/******************************************************************************
 *
 * This file is provided under a dual license.  When you use or
 * distribute this software, you may choose to be licensed under
 * version 2.1 of the GNU Lesser General Public License
 * ("LGPLv2.1 License") or BSD License.
 *
 * LGPLv2.1 License
 *
 * Copyright(C) 2019 MediaTek Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of version 2.1 of the GNU Lesser General Public
 * License as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html for more
 * details.
 *
 * BSD LICENSE
 *
 * Copyright(C) 2019 MediaTek Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  * Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *  * Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *****************************************************************************/

/*----------------------------------------------------------------------------*/
/*! @file u_wgl_bdr_drop_shadow_left.h 
 *  $RCSfile: $
 *  $Revision: #1 $
 *  $Date: 2015/11/10 $
 *  $Author: dtvbm11 $
 *  
 *  @par Description:
 *         This header file contains public interfaces, constant and type 
 *         definitions of the Widget Library.
 */
/*----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------*/
/*! @defgroup groupMW_WGL_BDR_DROP_SHADOW_LEFT   Bord Drop Shadow Left Widget
 *
 *  @ingroup groupMW_WGL
 *  @brief Provides definitions and exported function of the widget bord drop shadow left library.
 *
 *  %MW Application API would be used by TV Application, lot of these APIs would
 *   be wrapped from Exported API
 *
 *  @see groupMW_WGL
 *  @{ 
 */
/*----------------------------------------------------------------------------*/



#ifndef _U_WGL_BDR_DROP_SHADOW_LEFT_H_
#define _U_WGL_BDR_DROP_SHADOW_LEFT_H_

/*-----------------------------------------------------------------------------
                    include files
 ----------------------------------------------------------------------------*/

#ifdef __cplusplus
extern "C" {
#endif

/*-----------------------------------------------------------------------------
                    macros, defines, typedefs, enums
 ----------------------------------------------------------------------------*/
/**
This command gets the preferred inset of the border. This command is helpful since when some 
attributes of the border (e.g. the shadow height) is modified, the application can gets the new 
preferred inset that is suggested by the border and then set the preferred inset by the 
WGL_CMD_GL_SET_INSET command. 

Input arguments

pv_param2	Reserved. It must be NULL.

Output arguments

pv_param1	Contains the pointer of a single WGL_INSET_T buffer to receive the preferred border 
insets. Thus this argument must be of type (WGL_INSET_T *) and cannot be NULL.

Returns

WGLR_OK	The function call is successful.

WGLR_INV_ARG	The argument pv_param1 is NULL.
*/
#define WGL_CMD_BDR_DPSDWLFT_GET_PREFERRED_INSET        WGL_MAKE_BORDER_CMD(WGL_BORDER_DROP_SHADOW_LEFT, 0)    

/**
This command sets the shadow height of the border. For more information about shadow height.

Input arguments

pv_param1	Specifies the shadow height of the border. This argument must be of type UINT16. 

pv_param2	Reserved. It must be NULL.

Returns

WGLR_OK	The function call is successful.
*/
#define WGL_CMD_BDR_DPSDWLFT_SET_HEIGHT                 WGL_MAKE_BORDER_CMD(WGL_BORDER_DROP_SHADOW_LEFT, 1)   

/**
This command retrieves the shadow height of the border. For more information about shadow height.

Input arguments

pv_param2	Reserved. It must be NULL.

Output arguments

pv_param1	Contains the pointer of a single UINT16 buffer to receive the shadow height. Thus this 
argument must be of type (UINT16 *) and cannot be NULL.

Returns

WGLR_OK	The function call is successful.

WGLR_INV_ARG	The argument pv_param1 is NULL.
*/
#define WGL_CMD_BDR_DPSDWLFT_GET_HEIGHT                 WGL_MAKE_BORDER_CMD(WGL_BORDER_DROP_SHADOW_LEFT, 2)   

/**
This command sets the shadow alpha factor of the border. This factor determines the transparency 
of the shadow. The factor ranges from 0 to 255. Since this factor will be used to multiply the "
alpha component" of the shadow color, 0 will make the shadow completely transparent. For more 
information about shadow alpha factor.

Input arguments

pv_param1	Specifies the shadow height of the border. This argument must be of type UINT8. 

pv_param2	Reserved. It must be NULL.

Returns

WGLR_OK	The function call is successful.
*/
#define WGL_CMD_BDR_DPSDWLFT_SET_SHADOW_ALPHA_FACTOR    WGL_MAKE_BORDER_CMD(WGL_BORDER_DROP_SHADOW_LEFT, 3)   

/**
This command retrieves the shadow alpha factor of the border. For more information about shadow.

Input arguments

pv_param2	Reserved. It must be NULL.

Output arguments

pv_param1	Contains the pointer of a single UINT8 buffer to receive the shadow alpha factor. Thus 
this argument must be of type (UINT8 *) and cannot be NULL.

Returns

WGLR_OK	The function call is successful.

WGLR_INV_ARG	The argument pv_param1 is NULL
*/
#define WGL_CMD_BDR_DPSDWLFT_GET_SHADOW_ALPHA_FACTOR    WGL_MAKE_BORDER_CMD(WGL_BORDER_DROP_SHADOW_LEFT, 4)   


/*-----------------------------------------------------------------------------
                    structures
 ----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
                    functions
 ----------------------------------------------------------------------------*/



#ifdef __cplusplus
}
#endif
                         
#endif
/*----------------------------------------------------------------------------*/
/*! @} */   /* end of groupMW_WGL_BDR_DROP_SHADOW_LEFT*/
/*----------------------------------------------------------------------------*/


